<?php
/**
 * Classe gérant les formatages de données
 * @version 1.0
 * @author Jonathan Rotini
 * @abstract
 * @see Object
 */
abstract class Format extends Object
{       
        /**
         * La data qui doit être formater
         * @var Mixed
         */
        protected $_data;
        /**
         * Les option de formatage
         * @var Array
         */
        protected $_opts;
        /**
         * Le constructeur de la classe
         * @param Mixed $data
         * @param Array $opt
         */
        public function __construc($data, Array $opt)
        {
                $this->_data = $data;
                $this->_opts = $opt;
        }
        /**
         * Le destructeur de la classe
         * @see Object::__destruct()
         */
        public function __destruct()
        {
                unset($this->_data, $this->_opts);
        }
        /**
         * Set la data à l'objet
         * @param Mixed $data
         */
        final public function setData($data)
        {
                $this->_data = $data;
        }
        /**
         * Set les options de formatage
         * @param array $opt
         */
        public function setOption(Array $opt)
        {
                $this->_opts = $opt;
        }
        /**
     * Format le(s) arguments passé en paramètre dans un format donné.
     * @since 0.1
     * @access public
     * @param void
     * @return void
     */
        abstract public function format();
}
?>
